<?php
/**
 * Created by PhpStorm.
 * User: wodrow
 * Date: 18-8-23
 * Time: 下午3:38
 */

/* @var $this yii\web\View */

use yii\helpers\Html;
use kartik\affix\Affix;

$this->title = 'api开发帮助文档';
$this->params['breadcrumbs'][] = $this->title;
$this->params['page-header'] = '<!-- Page Heading/Breadcrumbs -->
    <div class="row">
        <div class="col-lg-12">
            <h1 class="page-header">api使用说明
                <small>帮助文档</small>
            </h1>
        </div>
    </div>
    <!-- /.row -->';

$items = [
    [
        'url' => '#section-9',
        'label' => '地址说明',
        'icon' => 'circle-arrow-right',
        'content' => "暂时统一使用http方式请求，get/post均可以，推荐使用post(如果需要分页之类的情况额外考虑)，往后如果考虑安全性，需要在登陆注册等敏感操作进行ssl认证，已搭建好的模拟生产domain为www.andijt.com，生产环境和测试环境暂时用同一个数据库",
        'items' => [
            ['url' => '#section-9-1', 'label' => '生产环境', 'icon' => 'arrow-right', 'content' => "生产环境api的URL一般为http://domain/api/to/your/action格式，如http://www.andijt.com/api/public/get-equipment-operate-type获取设备的操作类型"],
            ['url' => '#section-9-2', 'label' => '测试环境', 'icon' => 'arrow-right', 'content' => "测试环境api的URL一般为http://domain/api/index-dev.php/to/your/action格式，如http://www.andijt.com/api/index.php-dev.php/public/get-equipment-operate-type获取设备的操作类型，与生产环境的不通为加了index-dev.php，开启了一些调试功能，你可以查看api快速开发文档<pre>http://www.andijt.com/api/index-dev.php/route/api</pre>"],
        ],
    ],
    [
        'url' => '#section-8',
        'label' => '认证说明',
        'icon' => 'circle-arrow-right',
        'content' => "在非公开接口，如果要进行请求服务，基于安全考虑，需要对用户以及设备进行认证，本系统的各种操作都是基于用户的，所有接口都可以以此分为公开接口，用户认证前接口，用户认证后接口",
        'items' => [
            ['url' => '#section-8-1', 'label' => '公开接口', 'icon' => 'arrow-right', 'content' => "不需要任何认证，详见公开接口"],
            ['url' => '#section-8-2', 'label' => '认证前接口', 'icon' => 'arrow-right', 'content' => "主要是用户获取认证之前的操作，有登陆注册之类，这些接口需要传入设备信息，必须的设备信息自动有uuid设备/终端app唯一标识、app_version_id终端app的版本唯一号"],
            ['url' => '#section-8-2', 'label' => '用户认证后接口', 'icon' => 'arrow-right', 'content' => "也可以理解为业务接口，也需要传入设备信息，这些接口使用前需要进行安全认证，过程为登陆或注册获取到token和key，获取当前时间戳timestamp，自己生成一个随机数nonce，以及其他参数，然后按键名从小到大把对应的'键=值'用'&'拼接在一起，如'app_version_id=1&nonce=nonce&timestamp=timestamp&token=token&uuid=uuid'，用md5加密生成签名sign，签名随其他参数一起提交，实例：<pre>http://domain/api/test/default/index?uuid=apizza-wodrow-ys&app_version_id=1&token=pIMlArjMJmW29OsfFCf_mMbkW3azsPhUg0zk1W3ZpVC1cCz7qM&sign=i_gn_cXO6QvEMkpBCQ5hYnLkSWP6N-W6&amptimestamp=1534406969&nonce=5201314</pre>"],
        ],
    ],
    [
        'url' => '#section-10',
        'label' => '公开接口',
        'icon' => 'circle-arrow-right',
        'content' => "公开接口不需要任何认证信息，可以得到本系统的公用信息",
        'items' => [
            ['url' => '#section-10-1', 'label' => '获取设备操作类型键值对', 'icon' => 'arrow-right', 'content' => "地址为http://domain/public/get-equipment-operate-type，获取设备的操作类型，主要在发送验证码时需要"],
        ],
    ],
];
?>

    <div class="site-api-helper-doc1">
        <div class="row">
            <div class="col-sm-3 hidden-xs">
                <?php
                echo Affix::widget([
                    'items' => $items,
                ]); ?>
            </div>
            <div class="col-sm-9">
                <?php
                echo Affix::widget([
                    'type' => 'body',
                    'items' => $items
                ]); ?>
            </div>
        </div>
    </div>

<?php \common\components\widgets\JsBlock::begin(); ?>
    <script>
        $(function () {
            var kvsbH = $(".kv-sidebar").offset().top - 80;
            $(window).scroll(function () {
                var scroH = $(this).scrollTop();
                if (scroH >= kvsbH) {
                    $(".kv-sidebar").css({"position": "fixed", "top": 60});
                } else if (scroH < kvsbH) {
                    $(".kv-sidebar").css({"position": "static"});
                } else {
                    $(".kv-sidebar").css({"position": "static"});
                }
            });
        })
    </script>
<?php \common\components\widgets\JsBlock::end(); ?>